//package com.example.demo.service.Impl;
//
//import com.example.demo.mapper.BlobImageMapper;
//import com.example.demo.mapper.CensusUserMapper;
//import com.example.demo.service.CensusUserExportService;
//import com.example.demo.vo.CensusUserExportVo;
//import com.example.demo.vo.ImageBase64Vo;
//import org.apache.commons.codec.binary.Base64;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.*;
//import java.util.stream.Collectors;
//
//@Service
//public class CensusUserExportServiceImpl implements CensusUserExportService {
//
//    @Autowired
//    private CensusUserMapper censusUserMapper;
//
//
//    @Override
//    public List<CensusUserExportVo> exportCensusUsers() {
//        // 1. 获取所有用户数据
//        List<CensusUserExportVo> userList = censusUserMapper.getAllCensusUsers();
//
//        // 2. 收集所有图片ID（去重）
//        Set<Integer> allImageIds = new HashSet<>();
//        for (CensusUserExportVo user : userList) {
//            if (StringUtils.isNotBlank(user.getImageIds())) {
//                Arrays.stream(user.getImageIds().split(","))
//                        .map(String::trim)
//                        .filter(StringUtils::isNumeric)
//                        .map(Integer::parseInt)
//                        .forEach(allImageIds::add);
//            }
//        }
//
//        // 3. 批量查询所有关联图片的Base64数据
//        Map<Integer, String> imageBase64Map = Collections.emptyMap();
//        if (!allImageIds.isEmpty()) {
//            List<ImageBase64Vo> images = censusUserMapper.getBase64ImagesByIds(new ArrayList<>(allImageIds));
//            imageBase64Map = images.stream()
//                    .collect(Collectors.toMap(
//                            ImageBase64Vo::getImageId,
//                            ImageBase64Vo::getImage,
//                            (existing, replacement) -> existing
//                    ));
//        }
//
//        // 4. 处理每个用户的图片数据
//        for (CensusUserExportVo user : userList) {
//            List<String> base64List = new ArrayList<>();
//            List<byte[]> imageBytesList = new ArrayList<>();
//
//            if (StringUtils.isNotBlank(user.getImageIds())) {
//                // 解析图片ID列表
//                List<Integer> imageIds = Arrays.stream(user.getImageIds().split(","))
//                        .map(String::trim)
//                        .filter(StringUtils::isNumeric)
//                        .map(Integer::parseInt)
//                        .collect(Collectors.toList());
//
//                // 收集Base64数据并解码
//                for (Integer imageId : imageIds) {
//                    String base64 = imageBase64Map.get(imageId);
//                    if (base64 != null && !base64.isEmpty()) {
//                        base64List.add(base64);
//
//                        try {
//                            String pureBase64 = base64.contains(",")
//                                    ? base64.split(",")[1]
//                                    : base64;
//
//                            imageBytesList.add(Base64.decodeBase64(pureBase64));
//                        } catch (Exception e) {
//                            // 记录错误但继续处理其他图片
//                            // log.error("Base64解码失败: imageId={}", imageId, e);
//                        }
//                    }
//                }
//            }
//
//            user.setImageBase64List(base64List);
//            user.setImageDataList(imageBytesList);
//        }
//
//        return userList;
//    }
//}